export namespace Dog {
	export class Dog {
		constructor(name: string, age: number) {
			this.name = name;
			this.age = age;
		}
		public name: string;
		public age: number;
		public static bark(): void {
			console.log(this);
		}
	}
	export function wang() {
		console.log("Hello world!");
	}
	export interface IDog {
		name?: string,
		bark: () => void
	}

	let lucky: IDog = {
		name: "lucky",
		bark: (): void => console.log("汪汪")
	}
}

export namespace Cat {
	export class Cat {
		constructor(name: string, age: number) {
			this.name = name;
			this.age = age;
		}
		public name: string;
		public age: number;
		public bark(): void {
			console.log("喵");
		}
	}

	let myCat = new Cat('吾皇', 2);
	// myCat.bark();
}
